C+++++++++++++++++++++++++++.png



QMK firmware keychron c1


Created: 2023-10-21 | Modified: 2024-11-02

Flashing Sonix QMK on Keychron C1 plain mechanical keyboard

QMK firmware

Base instructions: Sonix QMK sn32_master Keychron C1 plain

Keyboard hardware model variants

This tutorial / collection of info applies to Keychron C1 plain

Building QMK firmware

The correct Sonix QMK branch to use for this is sn32_master_stable source: Found a comment on the discord server, generally digging through the discord server reveals the correct way of doing something

qmk clone SonixQMK/qmk_firmware -b sn32_master_stable

When making the firmware with the QMK command, specify via as the layout

qmk compile --keyboard keychron/c1/plain --keymap via

Build Sonix flasher

It's important to use the Flashing tool to flash the jumploader, which is needed on this chip, because it's possible to brick it, by overwriting the bootloader, the jumploader allows a button combination (ESC) to be held when plugging in the keyboard to boot into bootloader mode. Bootloader mode is the mode that allows flashing new software to the chip.

To build on modern systems, update requirements.txt QT version as per the instructions here (I do this with sed in the following code snippet)

This was tested on Arch 2023-09-21 with the following package versions:

# Install python 3.6
yay -Sy python36

# Don't save the software when rebooting the computer
cd /tmp/

# Download release 0.2.5
wget https://github.com/SonixQMK/sonix-flasher/archive/refs/tags/v0.2.5.zip

# Extract release
unzip v0.2.5.zip
cd sonix-flasher-0.2.5/

# Install these python package versions for this project only
python3.6 -m venv venv
source venv/bin/activate

# This was needed, else it threw an error
pip3 install --upgrade pip
pip install wheel

# Use a more modern version of the QT package, 
# that's compatible with the version of QT in the repos
sed -i 's/hidapi==0.9.0.post2/hidapi==0.14.0/' requirements.txt
pip install -r requirements.txt

# Run the program
python src/main/python/main.py

VIA

To use via it needs the json keyboard definition loaded

Resources


Expanding functionality

What have i used this newfound customizability for?

Mainly repurposing the os switcher has been into a layout switcher, to allow switching between Qwerty and Colemak in hardware, which comes in handy when using it on someone elses computer.

Firmware colemak switch

Also i changed the right alt to the menu button (acts like a right click)

You can find the firmware source code here: sonix-qmk - git.node5.net


Comments













(Will await approval before becoming public)